package com.miyu.system.controller.data;

import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.miyu.system.service.data.SysDataService;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

/**
 * 系统数据控制器
 *
 * @author longm
 * @date 2022/11/05
 */
@RestController
@RequestMapping("sys-data")
public class SysDataController {

    /**
     * 系统数据服务
     */
    @Resource
    private SysDataService sysDataService;

    /**
     * 查询系统dict
     *
     * @param param 参数
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysDict")
    public JSONArray querySysDict(@RequestBody JSONObject param){
        return sysDataService.querySysDict(param);
    }

    /**
     * 查询系统字典项目
     * @param param 参数
     * @return {@link JSONArray}
     */
    @RequestMapping("querySysDictItem")
    public JSONArray querySysDictItem(@RequestBody JSONObject param){
        return sysDataService.querySysDictItem(param);
    }
    /**
     * 编辑系统dict
     *
     * @param param 参数
     * @return {@link JSONObject}
     */
    @RequestMapping("editSysDict")
    public JSONObject editSysDict(@RequestBody JSONObject param){
        return sysDataService.editSysDict(param);
    }

    /**
     * 删除系统dict
     *
     * @param params 参数个数
     * @return {@link JSONObject}
     */
    @RequestMapping("delSysDict")
    public JSONObject delSysDict(@RequestBody JSONArray params){
        return sysDataService.delSysDict(params);
    }

    /**
     * 手动缓存系统字典
     * @return {@link JSONObject}
     */
    @RequestMapping("cacheSysDict")
    public JSONObject cacheSysDict(){
        return sysDataService.cacheSysDict();
    }

    /**
     * 收到系统字典通过密码
     * @param itemCode 密码
     * @return {@link JSONArray}
     */
    @RequestMapping("getSysDictByCode")
    public JSONArray getSysDictByCode(String itemCode){
        return sysDataService.getSysDictByCode(itemCode);
    }
}
